package com.rzcode.coinex.kernel.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 热钱包转账记录实体类，用于存储热钱包转账的详细信息。
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "hot_transfer_record")
public class HotTransferRecord {

    /**
     * 转账记录ID，自增长主键。
     */
    @ApiModelProperty(value = "转账记录ID", example = "1")
    private Long id;

    /**
     * 操作员ID，执行转账操作的操作员ID。
     */
    @ApiModelProperty(value = "操作员ID", hidden = true)
    private Long adminId;

    /**
     * 转账时间，热钱包转账发生的时间。
     */
    @ApiModelProperty(value = "转账时间", example = "2023-03-01 12:00:00")
    private LocalDateTime transferTime;

    /**
     * 转账金额，热钱包转账的具体金额。
     */
    @ApiModelProperty(value = "转账金额", example = "1000.00000000")
    private BigDecimal amount;

    /**
     * 热钱包余额，转账后热钱包的剩余余额。
     */
    @ApiModelProperty(value = "热钱包余额", example = "5000.00000000")
    private BigDecimal balance;

    /**
     * 矿工费，执行转账操作时支付的网络费用。
     */
    @ApiModelProperty(value = "矿工费", example = "0.00100000")
    private BigDecimal minerFee;

    /**
     * 单位，转账金额的单位，如BTC、ETH等。
     */
    @ApiModelProperty(value = "单位", example = "BTC")
    private String unit;

    /**
     * 操作员姓名，执行转账操作的操作员姓名。
     */
    @ApiModelProperty(value = "操作员姓名", example = "张三")
    private String adminName;

    /**
     * 冷钱包地址，接收转账的冷钱包地址。
     */
    @ApiModelProperty(value = "冷钱包地址", example = "0x123456789abcdef...")
    private String coldAddress;

    /**
     * 交易编号，区块链上的交易哈希或编号。
     */
    @ApiModelProperty(value = "交易编号", example = "0x1a2b3c4d5e6f...")
    private String transactionNumber;
}

